package com.neusoft.common;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;

import javax.enterprise.deploy.model.DDBean;

import jxl.CellType;
import jxl.DateCell;
import jxl.Sheet;
import jxl.Workbook;

public class ReadExcel {

	/**
	 * 将Excel表中的数据导入到Java中<br>
	 * @param file	导入的Excel文件
	 * @param sheetNumber	Excel文件中第几个工作表（从1开始）
	 * @param col_marker	标识列的位置（第几列的数字）(从1开始)
	 * @param colNumber		一共有多少列
	 * @param firstRow		首行是否读取 0：读取（直接从首行读取） 1：不读取（从第二行读取）
	 * @param firstCol		首列是否读取 0：读取（直接从首行读取） 1：不读取（从第二行读取）
	 * @return	数组的List，每一个数组都是一条商品信息<br> List的列数为Excel表中数据的行数，<br>数组中的个数为Excel表中数据的列数
	 */
	public static List<List<String>> readExcel(File file, int sheetNumber, int col_marker, int colNumber, int firstRow, int firstCol) {
		//创建一个行数据的List
		List<String> rows = new ArrayList<String>();
		//创建一个集合的List
		List<List<String>> beanList = new ArrayList<List<String>>();
		
		SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		df.setTimeZone(TimeZone.getTimeZone("GMT")); 
		try {			
			//寻找文件
			Workbook book = Workbook.getWorkbook(file);
			//获得第一个工作表对象
			Sheet sheet = book.getSheet(sheetNumber -1);
			//取得这个表中一共有多少行
			int rowNumber = sheet.getColumn(col_marker -1).length;		//从零开始 减一
			int rowReal = 0;
			//循环计算行数
			for(rowReal=0; rowReal<rowNumber; rowReal++){
				//如果内容为空 跳出循环
				if(sheet.getColumn(col_marker -1)[rowReal].getContents().trim() == ""){
					break;
				}
			}
			//rowNumber = 22;			//测试数据 
			//循环行数
			for(int i=firstRow;i<rowReal;i++){ 	
				//清空数据List
				rows = new ArrayList<String>();
				//找到当前行数的数据
				//colNumber = sheet.getRow(i).length;
				//循环 本行的列数 记录本行数据
				for(int j = firstCol; j< colNumber; j++){
					//时间类型
					if(sheet.getRow(i)[j].getType()==CellType.DATE){
						DateCell datec11 = (DateCell)sheet.getRow(i)[j];
						Date strc11 =datec11.getDate();
						rows.add(df.format(strc11));
					}else {
						rows.add(sheet.getRow(i)[j].getContents());
					}

				}
				
				//将数据转化为数组，放入到List中
				beanList.add(rows);
			}
			//关闭文件
			book.close();
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println(e);
		}
		return beanList;
	}
}
